View Javadoc

1   package uba.db.sql.language;
2   
3   import org.apache.commons.lang.builder.EqualsBuilder;
4   import org.apache.commons.lang.builder.HashCodeBuilder;
5   
6   /***
7    * Representa una referencia "calificada" a un nombre de columna (es decir del
8    * tipo <i>tabla.columna</i>).
9    * 
10   * @version $Revision: 1.8 $
11   */
12  public class QualifiedColumnName implements ColumnReference {
13      private TableName tableName;
14      private ColumnName columnName;
15  
16      /***
17       * Crea una nueva instancia que representa la columna referenciada por:
18       * <i>tableName.columnName</i>.
19       * 
20       * @param tableName
21       *            nombre de la tabla.
22       * @param columnName
23       *            nombre de la columna en la tabla.
24       */
25      public QualifiedColumnName(TableName tableName, ColumnName columnName) {
26          this.tableName = tableName;
27          this.columnName = columnName;
28      }
29  
30      /***
31       * @see java.lang.Object#hashCode()
32       */
33      public int hashCode() {
34          return HashCodeBuilder.reflectionHashCode(this);
35      }
36  
37      /***
38       * @see java.lang.Object#equals(java.lang.Object)
39       */
40      public boolean equals(Object obj) {
41          return EqualsBuilder.reflectionEquals(this, obj);
42      }
43  
44      /***
45       * @see java.lang.Object#toString()
46       */
47      public String toString() {
48          return tableName + "." + columnName;
49      }
50  
51      /***
52       * @see uba.db.sql.language.SingleValue#accept(uba.db.sql.language.Visitor)
53       */
54      public void accept(Visitor visitor) {
55          visitor.visitQualifiedColumnName(this);
56      }
57  
58      /***
59       * @see uba.db.sql.language.SingleValue#valueWith(uba.db.sql.language.EvaluationContext)
60       */
61      public Object valueWith(EvaluationContext context) {
62          return context.valueOf(this);
63      }
64  
65      public TableName tableName() {
66          return tableName;
67      }
68  
69      public ColumnName columnName() {
70          return columnName;
71      }
72  }